<?php
/**
 * RAI请求对象
 *
 * @version $Id: RaiRequest.php 312 2008-04-23 16:29:38Z iwind $
 * @package net.4kiki.rai.client
 * @since 0.0.3
 */
class RaiRequest {
	private $serviceName;
	private $methodName;
	private $arguments = array();
	
	/**
	 * 构造器
	 *
	 * @param string $serviceName 服务名
	 * @param string $methodName 方法名
	 * @param array $arguments 参数列表
	 */
	public function __construct($serviceName = null, $methodName = null, $arguments = null) {
		$this->setServiceName($serviceName);
		$this->setMethodName($methodName);
		$this->setArguments($arguments);
	}
	
	/**
	 * 设置服务名
	 *
	 * @param string $serviceName 服务名
	 */
	public function setServiceName($serviceName) {
		$this->serviceName = $serviceName;
	}
	
	/**
	 * 设置方法名
	 *
	 * @param string $methodName 方法名
	 */
	public function setMethodName($methodName) {
		$this->methodName = $methodName;
	}
	
	/**
	 * 设置参数列表
	 *
	 * @param array $arguments 设置参数
	 */
	public function setArguments($arguments) {
		if ($arguments === null) {
			return;
		}
		if (is_array($arguments)) {
			$this->arguments = $arguments;
		}
		else {
			throw new RaiException("arguements should be an array");
		}
	}
	
	/**
	 * 取得服务名
	 *
	 * @return string
	 */
	public function getServiceName() {
		return $this->serviceName;
	}
	
	/**
	 * 取得方法名
	 *
	 * @return string
	 */
	public function getMethodName() {
		return $this->methodName;
	}
	
	/**
	 * 取得参数列表
	 *
	 * @return array
	 */
	public function getArguments() {
		return $this->arguments;	
	}
}

?>